# coding: utf-8  
#读取文本中的中英文数据并使用正则表达式将所需数据筛选入到一个新文本中  
import re  
import os  
import datetime

# 获取python脚本所在目录地址
def get_script_path():
    path = os.getcwd() #获取当前工作目录路径
    print('[INFO]: path:', path)
    return path

#正则函数对读取到的数据进行筛选，并将筛选好的数据存入数组new_lines  
def zhengze(f):  
    #  regex_str=".*?(l.*?e).*"   # 正则表达式 查询带有l 和 e字符的行
    #  regex_str=".*(xie|line)"   # 正则表达式，查询带有 xie 或 带有 line字符串的行
    regex_str="(.*xie)|(.*line)"  # 正则表达式，查询带有 xie 或 带有 line字符串的行 另一种写法
    new_lines=[]               # 声明new_lines数组  
    for x in f:  
        new_x = x.splitlines()     #注意：splitlines是将传入的字符串去除'\n'之后以数组的形式传出，而不是字符串形式  
        print("[INFO]: new_x = ",new_x)
        print("[INFO]: new_x[0] = ",new_x[0])
        match_obj=re.match(regex_str,new_x[0])  
        print("[INFO]: match_obj = ",match_obj)
        if match_obj:  
            #  new_lines.append(match_obj.group(1))
            new_lines.append(new_x[0])
        else:  
            #  new_lines.append('no')
            print("[INFO]: This line is not.")
    return new_lines  


#获取指定文件夹下的所有文本的绝对地址，并存入数组file_path  
def get_text_pathes(path = os.getcwd()):
    #  path=r'C:\Users\yuanlei\Desktop\new_file_txt'
    file_path=[]
    print('[INFO]: path:', path)
    for filename in os.listdir(path):     #获取path下所有文件的路径
            file_path.append((os.path.join(path,filename)))
    print('[INFO]: file_path:', file_path)
    return file_path

def main():
    script_path = get_script_path()
    print('[INFO]: script_path:', script_path)
    ## 将脚本所在路径加上一个文件名拼接成一个目录地址，用于图片存放地址
    save_folder_path = script_path +"\\result_text"
    print('[INFO]: save_folder_path =',save_folder_path)
    
    #  path=r'D:\Desktop\new_file_txt'
    path = script_path +"\\org"
    print('[INFO]: path =',path)
    path_list = get_text_pathes(path)
    print('[INFO]: path_list = ',path_list)

    #对每个文本调用正则函数进行筛选,筛选过后的数据存入数组final
    for adress in path_list:
            file_object=open(adress)
            lines = file_object.readlines( )     #将文本中的内容以数组的形式（每行为一个元素）赋给lines
            file_object.close()
            final=zhengze(lines)
    print('final = ',final)

    #将筛选出来的数据写入新文本
    #拼接时间值做文件名一部分
    now = datetime.datetime.now()
    datestr = now.strftime("%Y%m%d%H%M")
    #  save_file_name = 're_new.txt'
    save_file_name = 're_new_'+datestr+".txt"
    save_file_path = save_folder_path + "\\" + save_file_name
    print('save_file_path = ',save_file_path)
    file_2=open(save_file_path,'w+')
    for x in final:
            file_2.write(x)
            file_2.write('\n')
    file_2.close()

main()

